The Facade Pattern provides a unified interface to a set of interfaces in a subsystem. 
Facade defines a higher level interface that makes the subsystem easier to use.

Facade Pattern

  1. Use Facade to simplify and unify a large interface or complex set of interfaces.
  2. It decouples a client from a complex subsystem.
  3. It shields client from subsystem components, thereby reducing the number of objects that client has to deal with and making the subsystem easier for use.
  4. Promotes weak coupling between the subsystem and client.
  5. It defines a higher level interface without hiding the lower-level functionality. So the applications can use the subsystem classes if they have to.

It promotes Principle of least knowledge or law of demeter.

Principle of least knowledgeTalk only to your immediate friends

Java Structural Patterns